<HTML><HEAD><TITLE>breal_min(+Number, -Result)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">Arithmetic</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>breal_min(+Number, -Result)</H1>
Extracts the lower floating point bound of Number
<DL>
<DT><EM>Number</EM></DT>
<DD>A number.
</DD>
<DT><EM>Result</EM></DT>
<DD>A variable or float.
</DD>
</DL>
<H2>Description</H2>
    This predicate is used by the ECLiPSe compiler to expand evaluable
    arithmetic expressions.  So a call to breal_min(Number, Result) is
    equivalent to
<PRE>
    Result is breal_min(Number).
</PRE>
    A bounded real is a real number represented by a lower and upper
    bound in floating point format. This predicate extracts the lower
    bound and unifies it with Result. If Number is not a bounded real,
    the result returned is equivalent to converting it to a bounded real
    first.
<P>

<H3>Modes and Determinism</H3><UL>
<LI>breal_min(+, -) is det
</UL>
<H3>Exceptions</H3>
<DL>
<DT><EM>(4) instantiation fault </EM>
<DD>Number is not instantiated
<DT><EM>(24) number expected </EM>
<DD>Number is a not a number.
</DL>
<H2>Examples</H2>
<PRE>
Success:
      ?- breal_min(0.99__1.01, X).
      X = 0.99

      ?- breal_min(1, X).
      X = 1.0

      ?- breal_min(1.0, X).
      X = 1.0

      ?- breal_min(1_10, X).
      X = 0.099999999999999992

Error:
      ?- breal_min("a", Z).
      number expected in breal_min("a", Z)

      ?- breal_min(2 + 4, Z).
      number expected in breal_min(2 + 4, Z)
</PRE>
<H2>See Also</H2>
<A HREF="../../kernel/arithmetic/breal_max-2.html">breal_max / 2</A>, <A HREF="../../kernel/typetest/breal-1.html">breal / 1</A>, <A HREF="../../kernel/arithmetic/breal-2.html">breal / 2</A>, <A HREF="../../kernel/arithmetic/breal_bounds-3.html">breal_bounds / 3</A>, <A HREF="../../kernel/arithmetic/breal_from_bounds-3.html">breal_from_bounds / 3</A>, <A HREF="../../kernel/arithmetic/is-2.html">is / 2</A>
</BODY></HTML>
